package cn.gok.demo.controller;


import cn.gok.demo.dao.ClazzMapper;
import cn.gok.demo.dao.StudentMapper;
import cn.gok.demo.entity.Clazz;
import cn.gok.demo.entity.Student;
import cn.gok.demo.service.ClazzService;
import cn.gok.demo.service.impl.ClazzServiceImpl;
import cn.gok.demo.service.impl.StudentServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.*;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author zyx
 * @since 2022-07-21
 */

//1）	查询所有班级信息
//        2）	根据ID查询班级信息

//        4）	添加班级
//        5）	修改班级信息
//        6）	根据id删除班级
//        7）	批量删除班级

@RestController
@RequestMapping("/clazz")
public class ClazzController {
    @Autowired
    private ClazzMapper clazzMapper;
    @RequestMapping("/selectallclass")
    public List<Clazz> selectallclass(){
        List<Clazz> list=clazzMapper.selectList(null);
        for (Clazz clazz : list) {
            System.out.println(clazz);
        }
        return list;
    }

    @RequestMapping("/selectById")
    public Clazz selectById(@RequestParam int cid){
        Clazz clazz=clazzMapper.selectById(cid);
        System.out.println(clazz);
        return clazz;
    }
    //        3）	查询所有班级信息和对应的学生信息

    @Autowired
    private StudentMapper studentMapper;

    @RequestMapping("selectallstudent")
    public Map<Clazz, List<Student>> selectallstudent(){
        Map<Clazz, List<Student>> map=new HashMap<>();
        List<Clazz> clazzes = clazzMapper.selectList(null);
        for (Clazz clazz : clazzes) {
            QueryWrapper<Student> wrapper=new QueryWrapper<>();
            wrapper.eq("cid",clazz.getCid());
            List<Student> students=studentMapper.selectList(wrapper);
            map.put(clazz,students);
        }
        return map;
    }

    @RequestMapping("insertclass")
    public int insertclass(Clazz clazz){
        return clazzMapper.insert(clazz);
    }
//修改班级信息
    @RequestMapping("updateclass")
    public void updateclass(Clazz clazz){
         clazzMapper.updateById(clazz);
    }

//    根据id删除班级
    @PostMapping("/deleteById")
    public int deleteById(@RequestParam long cid){
       return clazzMapper.deleteById(cid);
    }
//批量删除班级
    @RequestMapping("/deleteByBatchIds")
    public int deleteByBatchIds(@RequestParam List<String> cid){
       return clazzMapper.deleteBatchIds(cid);
    }





}

